h$ra޲      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                   (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #'(-/28>?&~ do-spaces0An s3-compatible API error response, sent as XML do-spacesHTTP  do-spacesThe s3 error code type do-spacesThe unique ID of the request do-spaces"An exception generated within the  client  do-spacesThis includes the raw  body, read into a lazy   do-spaces The base  type for both s and s  do-spaces"Canned" access controls; Spaces doesn't support the full range offered by s3 do-spaces No unauthenticated public access do-spaces,Unauthenticated public read access permitted do-spacesHow to discover -s and *s when creating a new  client. do-spaces- and * env vars do-spacesLoad your credentials from a file, optionally providing the profile to use (or default as the... default). do-spacesProvide both keys explicitly do-spacesA & with optional  do-spacesA  consumed by an % instance do-spaces2, the retention of which can be controlled using  do-spacesWhether or not to retain  when consuming responses do-spacesMetadata and other response information returned from each Spaces API transaction; it can be helpful to retain this at times do-spacesUnique ID assigned to your request. This is not included in all responses do-spaces HTTP status  do-spacesA request or response body) do-spacesThe name of a per-project configuration profile to select when loading credentials from a file* do-spacesSpaces secret key- do-spacesSpaces access key5 do-spaces A strict  that has been computed according to some part of the AWS v4 spec. The AWS v4 signature is calculated from a series of interdependent computations. It would be possible to represent these all as s; this approach, however, would make it easy to confuse two sequences that are not semantically equivalent, leading to the generation of malformed singatures. The promiscuous use of s also makes for unclear type signatures. Using a GADT with type synonyms is simpler than creating a newtype for each type of computation7 do-spacesRepresents a "string to sign" that has been computed according to the Spaces/AWS v4 spec8 do-spacesSigned hash of a  body, a *, and request information: do-spaces7Authorization string containing information about your - and your request; do-spacesRepresents some resource that has been canonicalized according to the Spaces/AWS v4 spec> do-spacesA unique ID for a C@ do-spaces0Configuration for automatically deleting expire sC do-spacesLifecycle configuration for a F do-spacesThe status of the  LifecycleRuleG do-spacesWhen specified, only s which share the prefix will be affected by the lifecycle rulesI do-spacesWhen specified, configures the deletion of incomplete multipart uploadsK do-spacesA generic type for describing ACL configuration, can be applied to both  and  ACLsO do-spaces0Information about who an access grant applies toP do-spacesNominally contains a URI value, but Spaces only supports a single value for group access grantsR do-spacesAccess grant level; Spaces currently only supports these two levelsU do-spacesAn individual access grantY do-spaces#Cross-origin resource sharing rules^ do-spaces;Arbitrary key-value pairs supplied by the user, for use in PUT or POST# requests. Each pair expands into  x-amz-meta-*, e.g. -x-amz-meta-s3cmd-attrs: uid:1000/gname:asb..._ do-spacesContent-Encoding request header value` do-spacesContent-Disposition request header valuea do-spaces Cache-Control request header valueb do-spaces'Optional headers when uploading objectsi do-spacesMD5 hash of an j do-spacesThe display name is always equivalent to the owner's ID; Spaces includes it for AWS compatibilityk do-spaces The ID of an n); also serves as a display name in Spacesn do-spacesThe resource ownerr do-spaces5Metadata returned when querying information about an t do-spaceslength in bytesx do-spacesInformation about a single , returned when listing a  's contents} do-spaces Size in bytes do-spaces$The name of a "key", in AWS parlance do-spacesInformation about a single  do-spaces#The name of a single storage bucket do-spaces%HTTP request methods, to avoid using  http-client's stringly-typed Method synonym do-spacesDO regions where Spaces is available (only a subset of all regions) do-spacesNYC3 do-spacesAMS3 do-spacesSFO3 do-spacesSGP1 do-spacesFRA1 do-spaces#Certain operations, currently only ;, should be able to override the region configured in the  client do-spacesThe actual HTTP  do-spacesYour  configuration do-spaces Obligatory #s that will be added to the request do-spaces The HTTP  do-spacesThe SHA256 hash of the  contents do-spacesThe canonicalized HTTP  do-spaces/A client for interacting with the DO Spaces API do-spacesYour DO Spaces access key do-spacesYour DO Spaces secret key do-spaces The DO region do-spacesHTTP  do-spacesSmart constructor for -s; names must conform to the following rules:2They must be between 3 and 63 characters in lengthThey may only contain lowercase letters, digits, dots, and hyphens=They must begin and end in a number or letter See more at:  https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html.This function ensures that names are valid and will also convert the  to lowercase do-spacesSmart constructor for s; names must not be empty do-spacesSmart constructor for >, which may contain a maximum of 255 characters, including spaces do-spacesSmart constructor for Y. Ensures that both origins and header names contain a maximum of one wildcard and removes duplicates from both headers and methods do-spaces Extract the  from something 5   !"$#%&'()*+,-./0123458697:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsuwvtxyz}{|~%&'()-./*+,klmjnopqxyz}{|~rsuwvti!"$# a`_^bcdefgh YZ[\]UVWXRSTOPQKLMNCDEFGHI@AB>?;<=58697:43210   J(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>) do-spacesDelete a single (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>?)(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>?* do-spacesDelete all of a 's configured s(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>+ do-spacesDelete a single . Note that it must be empty do-spacesThe name of the  to delete(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone  #$%/?0 do-spaces Convert a  to its equivalent slug do-spacesMap  chars to lower-case do-spacesShow a  do-spaces Show some  do-spaces0Strip leading and trailing double quotes from a  do-spaces Convert a  to a  ! do-spacesConvert b to a list of request s do-spacesCreate an XML  do-spacesXML parser for n attribute do-spacesXML parser for i attribute do-spacesXML parser for  LastModified attribute do-spacesRead a  type from  do-spacesRead a & type, encoded as an integer, from XML do-spacesRead a  from an ISO-O8601-formatted  do-spaces-Helper to build exceptions during XML parsing do-spacesParse the name of a  from XML do-spacesParse the name of an  from XML do-spacesLookup the value of a  from a ! in a monadic context do-spaces Transform a  value into an i do-spaces Transform a  value into an  (for Content-Length) do-spaces Create a  by reading response s, after passing the !!(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/3y do-spaces Extract the  from a  and set the requisite  Authorization header do-spaces Create a new  from a , performing the necessary computations and setting the appropriate default headers do-spaces Generate a 4 do-spaces Generate a 2 do-spaces Create an 0' corresponding to the required AWS v4  Authorization header(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>4 do-spacesLength in bytes do-spacesUpload a single object to Spaces. The maximum size for a single PUT request is 5 GB   (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8>8)  do-spaces-Part number marking the beginning of the list do-spacesIf truncated, the list location where the next response will begin do-spacesList all of the s of a multipart upload session do-spaces)Cancel an active multipart upload session do-spacesThe MD5 hash of the final object, i.e. all of the cumulative uploaded parts do-spacesComplete a multipart session do-spacesThe part numbers and is of each uploaded part do-spaces#Initiate a multipart upload session do-spaces2A unique ID assigned to a multipart upload session do-spacesA single part of a multipart upload session. Returned when querying  do-spaces Size in bytes88 (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8>?9 do-spaces3Get the full Access Control List associated with a  do-spacesThe object owner (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>?: do-spacesConfigure the Cs for a  (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>?; do-spacesSet a 's Ys (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8>?@B  do-spacesThe % prefix, if supplied as a query param do-spacesAn  indicating where the list of  s begin; # denotes the beginning of the list do-spacesThe  that should be used as the marker$ query param in subsequent requests do-spacesMaximum number of x:s to include; based on request parameter of the same name do-spaces5Indicates whether the response contains all possible s do-spacesList the contents (s) of a  do-spacesCharacter used to group keys do-spacesThe 1 to start with when listing the bucket's contents do-spacesMax number of ,s to return, between 0 and 1,000 (inclusive) do-spacesString value to group keys. Only objects whose names begin with the prefix are returned(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>Aa do-spacesList all of your s withing the " you have configured(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8>Bf do-spacesGet information about an 2; the response does not contain the object itself(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>?CM do-spaces3Get the full Access Control List associated with a (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$/8>Da do-spaces Retrieve an  along with its associated metadata. The object's data is read into a lazy (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>E do-spacesThe  of the queried  do-spacesQuery the location (the ) of a  do-spacesThe name of the & whose location you'd like to retrieve(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$&8>?GH do-spacesGet the C configuration for a . Note that unless you have explicitly configured lifecycle rules, this will fail with a 404 status and an error code of NoSuchLifecycleConfiguration(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>?H# do-spacesGet the Ys associated with a (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>?I do-spaces3Get the full Access Control List associated with a (c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>J@ do-spacesCreate a new, empty  do-spacesThe name of the new  to create do-spacesThe   to use; defaults to #$(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$8>K do-spaces Copy and  from one 5 to another. Both buckets must be in the same region do-spaces Whether the 's metadata should be copied or replaced. Replace is required to copy an object to itself(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone #$?M do-spacesRun an instance of %, receiving a &. The retention of %! can be controlled by passing a  constructor(c) 2021 Rory Tyler Hayford BSD-3-Clauserory.hayford@protonmail.com experimentalGHCNone  #$/?` do-spaces!Perform a transaction using your , client configuration. Note that this does not perform any exception handling; if caught at the lower level, exceptions are generally re-thrown as  s To run a ; action with arguments in the opposite order, you can use  directly do-spaces Create a new  in a given 9 while specifying a method to retrieve your credentials: expects a configuration file in the same format as AWS credentials files, with the same field names. For example: [default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY will look up the following environment variables to find your keys: AWS_ACCESS_KEY_ID , SPACES_ACCESS_KEY_ID , SPACES_ACCESS_KEY for the -, and AWS_SECRET_ACCESS_KEY , SPACES_SECRET_ACCESS_KEY , and SPACES_SECRET_KEY for your *. Alternatively, you can directly specify the environment variables to consult.7You can also choose to provide both keys yourself with  do-spaces Upload an  within a single request do-spaces8Initiate and complete a multipart upload, using default b. If a   is thrown while performing the transaction, an attempt will be made to runSpaces a - request, and the exception will be rethrown do-spacesUpload a file's contents as an (. This will attempt to set the correct  based on the file extension do-spacesGet information about an + (does not retrieve the body of the object) do-spacesGet an * (retrieves the actual body of the object) do-spacesGet an %'s data and write it to the provided  do-spacesCopy an  from one  to another; this chooses a number of defaults to represent the most common cases and avoid a preponderance of parameters. s are copied using default ACLs with the COPY metadata directive.If you'd like to use a specfic   or , use  directly with  do-spacesCopy an  within the same , using defaults for the  and   do-spacesCopy an / to itself, overwriting its associated metadata do-spacesDelete a single  do-spacesGet an 's Access Control Lists do-spacesSet an 's Access Control Lists do-spaces Create a new  do-spaces Delete a  do-spacesGet the location () of a  do-spaces List every $ associated with your Spaces account do-spaces List the s of a , without grouping, delimiting, or limiting the keys (i.e. list all -s non-hierarchically, up to the Spaces limit) do-spaces List the s of a >, using a delimiter and prefix to group objects. For example / can be used as a delimiter to treat objects as directories within the bucket, which can further be combined with a text prefix do-spacesRecursively list all s in a  , calling  until  isTruncated is False. This operation may take some time, depending on the total number of objects in your bucket do-spacesGet the Ys configured for a given  do-spacesSet Ys for a given  do-spacesDelete the existing configured Ys for a given  do-spacesGet a 's Access Control Lists do-spacesSet a 's Access Control Lists. Spaces only allows a limited subset of s3 ACLs at the moment. It may be preferable to use a   when creating new resources rather than using this action, which is provided for the sake of completeness.?Note that to allow public read-only access to your bucket, you must( simultaneously set full owner control. do-spacesGet a 's C configuration . Note that unless you have explicitly configured lifecycle rules, this will fail with a 404 status and an error code of NoSuchLifecycleConfiguration do-spacesSet a 's C configuration do-spaces Delete a 's C configuration do-spacesSource  do-spaces Destination  do-spacesSource  do-spaces Destination  do-spacesSource  do-spaces Destination  do-spacesOverrides the  in your  configuration do-spaces Delimiter do-spaces Prefix used to group object keys  )*+,-./>OPQRSTUVWXY-./*+,)YUVWXOPQRST>   &&'()*+,-./012$34567889:;<=%%>?@ABBCDEFGHIJJKLLMNOPQRSQRPONTTUVVWXYZZ[\]^_`aabcdefghijjklmnopqrsttuvwxyz{||}~~"                                                                                                                                   !!do-spaces-0.1.0-inplaceNetwork.DO.Spaces.Types&Network.DO.Spaces.Actions.DeleteObject/Network.DO.Spaces.Actions.DeleteBucketLifecycle*Network.DO.Spaces.Actions.DeleteBucketCORS&Network.DO.Spaces.Actions.DeleteBucketNetwork.DO.Spaces.UtilsNetwork.DO.Spaces.Request&Network.DO.Spaces.Actions.UploadObject)Network.DO.Spaces.Actions.UploadMultipart'Network.DO.Spaces.Actions.SetObjectACLs,Network.DO.Spaces.Actions.SetBucketLifecycle'Network.DO.Spaces.Actions.SetBucketCORS'Network.DO.Spaces.Actions.SetBucketACLs$Network.DO.Spaces.Actions.ListBucket(Network.DO.Spaces.Actions.ListAllBuckets'Network.DO.Spaces.Actions.GetObjectInfo'Network.DO.Spaces.Actions.GetObjectACLs#Network.DO.Spaces.Actions.GetObject+Network.DO.Spaces.Actions.GetBucketLocation,Network.DO.Spaces.Actions.GetBucketLifecycle'Network.DO.Spaces.Actions.GetBucketCORS'Network.DO.Spaces.Actions.GetBucketACLs&Network.DO.Spaces.Actions.CreateBucket$Network.DO.Spaces.Actions.CopyObjectNetwork.DO.Spaces.ActionsNetwork.DO.SpacesNetwork.HTTP.TypesResponseNetwork.HTTP.Conduit CreateBucketCORSRuleData.ByteString.Lazy ByteStringRegion!Network.DO.Spaces.Types.CannedACLPrivateSpacesMetadata APIException$sel:status:APIException$sel:code:APIException$sel:requestID:APIException$sel:hostID:APIExceptionClientExceptionInvalidRequest InvalidXMLConfigurationError HTTPStatus OtherErrorSpacesException CannedACL PublicReadCredentialSourceFromEnvFromFileExplicitSpacesResponse$sel:result:SpacesResponse$sel:metadata:SpacesResponse WithMetadata KeepMetadata NoMetadata$sel:requestID:SpacesMetadata$sel:date:SpacesMetadata$sel:status:SpacesMetadataBodyBS RawResponse$sel:headers:RawResponse$sel:body:RawResponseActionConsumedResponse buildRequestconsumeResponseProfile SecretKey$sel:unSecretKey:SecretKey AccessKey$sel:unAccessKey:AccessKey Authorization Credentials SignatureHashed StringToSignComputed Canonicalized"$sel:unCanonicalized:Canonicalized LifecycleIDLifecycleExpiration AfterDaysOnDate LifecycleRule$sel:id':LifecycleRule$sel:enabled:LifecycleRule$sel:prefix:LifecycleRule$sel:expiration:LifecycleRule"$sel:abortIncomplete:LifecycleRuleDays ACLResponse$sel:owner:ACLResponse"$sel:accessControlList:ACLResponseGranteeGroup CanonicalUser PermissionReadOnly FullControlGrant$sel:permission:Grant$sel:grantee:Grant$sel:allowedOrigin:CORSRule$sel:allowedMethods:CORSRule$sel:allowedHeaders:CORSRule UserMetadataContentEncodingContentDisposition CacheControl UploadHeaders$sel:acl:UploadHeaders$sel:cacheControl:UploadHeaders%$sel:contentDisposition:UploadHeaders"$sel:contentEncoding:UploadHeaders$sel:metadata:UploadHeadersETag DisplayNameOwnerID$sel:unOwnerID:OwnerIDOwner$sel:id':Owner$sel:displayName:OwnerObjectMetadata!$sel:contentLength:ObjectMetadata$sel:contentType:ObjectMetadata$sel:etag:ObjectMetadata $sel:lastModified:ObjectMetadata ObjectInfo$sel:object:ObjectInfo$sel:lastModified:ObjectInfo$sel:etag:ObjectInfo$sel:size:ObjectInfo$sel:owner:ObjectInfoObject$sel:unObject:Object BucketInfo$sel:name:BucketInfo$sel:creationDate:BucketInfoBucket$sel:unBucket:BucketMethodGETPOSTPUTDELETEHEADNewYork Amsterdam SanFrancisco Singapore FrankfurtSpacesRequestBuilder $sel:spaces:SpacesRequestBuilder$sel:body:SpacesRequestBuilder $sel:method:SpacesRequestBuilder!$sel:headers:SpacesRequestBuilder $sel:bucket:SpacesRequestBuilder $sel:object:SpacesRequestBuilder%$sel:queryString:SpacesRequestBuilder&$sel:subresources:SpacesRequestBuilder($sel:overrideRegion:SpacesRequestBuilder SpacesRequest$sel:request:SpacesRequest$sel:spaces:SpacesRequest$sel:headers:SpacesRequest$sel:method:SpacesRequest$sel:payloadHash:SpacesRequest#$sel:canonicalRequest:SpacesRequest$sel:time:SpacesRequestSpaces$sel:accessKey:Spaces$sel:secretKey:Spaces$sel:region:Spaces$sel:manager:Spaces MonadSpacesSpacesT runSpacesTmkBucketmkObject mkLifecycleID mkCORSRule uncompute$fHasHttpManagerSpaces,$fHasFieldnameSpacesResponseSpacesResponsest$fExceptionSpacesException$fShowSpacesException$fExceptionClientException$fExceptionAPIException$fShowAPIException$fEqAPIException$fGenericAPIException$fShowClientException$fEqClientException$fGenericClientException$fShowUploadHeaders$fEqUploadHeaders$fGenericUploadHeaders $fEqCannedACL$fShowCannedACL$fGenericSpacesResponse$fShowSpacesMetadata$fEqSpacesMetadata$fGenericSpacesMetadata$fShowWithMetadata$fEqWithMetadata$fGenericWithMetadata$fGenericRawResponse$fGenericSpacesT$fFunctorSpacesT$fApplicativeSpacesT$fMonadSpacesT$fMonadIOSpacesT$fMonadThrowSpacesT$fMonadCatchSpacesT$fMonadReaderSpacesSpacesT$fMonadUnliftIOSpacesT$fGenericSpacesRequest$fGenericSpacesRequestBuilder$fGenericSpaces$fShowSecretKey $fEqSecretKey$fGenericSecretKey$fShowAccessKey $fEqAccessKey$fGenericAccessKey$fShowComputedTag$fEqComputedTag$fShowCanonicalized$fEqCanonicalized$fGenericCanonicalized$fShowLifecycleRule$fEqLifecycleRule$fGenericLifecycleRule$fShowLifecycleID$fEqLifecycleID$fGenericLifecycleID$fShowLifecycleExpiration$fEqLifecycleExpiration$fGenericLifecycleExpiration$fShowACLResponse$fEqACLResponse$fGenericACLResponse $fShowGrant $fEqGrant$fGenericGrant $fShowGrantee $fEqGrantee$fGenericGrantee$fShowPermission$fEqPermission$fGenericPermission$fOrdPermission$fShowCORSRule $fEqCORSRule$fGenericCORSRule$fShowObjectInfo$fEqObjectInfo$fGenericObjectInfo$fShowObjectMetadata$fEqObjectMetadata$fGenericObjectMetadata $fShowOwner $fEqOwner$fGenericOwner $fShowOwnerID $fEqOwnerID$fGenericOwnerID $fNumOwnerID $fShowObject $fEqObject$fGenericObject$fShowBucketInfo$fEqBucketInfo$fGenericBucketInfo $fShowBucket $fEqBucket$fGenericBucket $fShowMethod $fEqMethod$fGenericMethod $fOrdMethod $fReadMethod $fShowRegion $fEqRegion$fGenericRegion$fShowSpacesResponse $fEqComputed$fShowComputedDeleteObjectResponse DeleteObject$sel:bucket:DeleteObject$sel:object:DeleteObject$fActionmDeleteObject$fShowDeleteObject$fEqDeleteObject$fGenericDeleteObjectDeleteBucketLifecycleResponseDeleteBucketLifecycle!$sel:bucket:DeleteBucketLifecycle$fActionmDeleteBucketLifecycle$fShowDeleteBucketLifecycle$fEqDeleteBucketLifecycle$fGenericDeleteBucketLifecycleDeleteBucketCORSResponseDeleteBucketCORS$sel:bucket:DeleteBucketCORS$fActionmDeleteBucketCORS$fShowDeleteBucketCORS$fEqDeleteBucketCORS$fGenericDeleteBucketCORSDeleteBucketResponse DeleteBucket$sel:bucket:DeleteBucket$fActionmDeleteBucket$fShowDeleteBucket$fEqDeleteBucket$fGenericDeleteBucket regionSlug slugToRegion toLowerBSbshowtshowunquotequote showCannedACLshowPermission handleMaybebodyLBSrenderUploadHeadersmkNode xmlDocCursorownerPetagP lastModifiedPxmlIntxmlNum xmlUTCTimeisTruncP xmlElemErrorbucketPobjectP xmlMaybeElemlookupObjectMetadata lookupHeaderreadEtagreadContentLenaclPwriteACLSetterdefaultUploadHeadersgetResponseMetadatafinalizenewSpacesRequestmkStringToSign mkSignaturemkAuthorizationUploadObjectResponse$sel:etag:UploadObjectResponse'$sel:contentLength:UploadObjectResponse UploadObject$sel:bucket:UploadObject$sel:object:UploadObject$sel:body:UploadObject!$sel:optionalHeaders:UploadObject$sel:contentType:UploadObject$fActionmUploadObject$fShowUploadObjectResponse$fEqUploadObjectResponse$fGenericUploadObjectResponse$fGenericUploadObjectListPartsResponse$sel:bucket:ListPartsResponse$sel:object:ListPartsResponse$sel:uploadID:ListPartsResponse$sel:parts:ListPartsResponse!$sel:partMarker:ListPartsResponse%$sel:nextPartMarker:ListPartsResponse$sel:maxParts:ListPartsResponse"$sel:isTruncated:ListPartsResponse ListParts$sel:session:ListPartsCancelMultipartResponseCancelMultipart$sel:session:CancelMultipartCompleteMultipartResponse'$sel:location:CompleteMultipartResponse%$sel:bucket:CompleteMultipartResponse%$sel:object:CompleteMultipartResponse#$sel:etag:CompleteMultipartResponseCompleteMultipart$sel:session:CompleteMultipart$sel:parts:CompleteMultipartUploadPartResponse$sel:etag:UploadPartResponse UploadPart$sel:session:UploadPart$sel:partNumber:UploadPart$sel:body:UploadPartBeginMultipartResponse#$sel:session:BeginMultipartResponseBeginMultipart$sel:bucket:BeginMultipart$sel:object:BeginMultipart#$sel:optionalHeaders:BeginMultipart$sel:contentType:BeginMultipartUploadIDMultipartSession$sel:bucket:MultipartSession$sel:object:MultipartSession$sel:uploadID:MultipartSessionPart$sel:partNumber:Part$sel:lastModified:Part$sel:etag:Part$sel:size:Part$fActionmBeginMultipart$fActionmUploadPart$fActionmCompleteMultipart$fActionmCancelMultipart$fActionmListParts$fShowListPartsResponse$fEqListPartsResponse$fGenericListPartsResponse$fShowListParts $fEqListParts$fGenericListParts$fShowCancelMultipart$fEqCancelMultipart$fGenericCancelMultipart$fShowCompleteMultipartResponse$fEqCompleteMultipartResponse"$fGenericCompleteMultipartResponse$fShowCompleteMultipart$fEqCompleteMultipart$fGenericCompleteMultipart$fShowUploadPartResponse$fEqUploadPartResponse$fGenericUploadPartResponse$fGenericUploadPart$fShowBeginMultipartResponse$fEqBeginMultipartResponse$fGenericBeginMultipartResponse$fShowBeginMultipart$fEqBeginMultipart$fGenericBeginMultipart$fShowMultipartSession$fEqMultipartSession$fGenericMultipartSession $fShowPart$fEqPart $fGenericPartSetObjectACLsResponse SetObjectACLs$sel:bucket:SetObjectACLs$sel:object:SetObjectACLs$sel:owner:SetObjectACLs$sel:acls:SetObjectACLs$fActionmSetObjectACLs$fShowSetObjectACLs$fEqSetObjectACLs$fGenericSetObjectACLsSetBucketLifecycleResponseSetBucketLifecycle$sel:bucket:SetBucketLifecycle$sel:rules:SetBucketLifecycle$fActionmSetBucketLifecycle$fShowSetBucketLifecycle$fEqSetBucketLifecycle$fGenericSetBucketLifecycleSetBucketCORSResponse SetBucketCORS$sel:bucket:SetBucketCORS$sel:rules:SetBucketCORS$fActionmSetBucketCORS$fShowSetBucketCORS$fEqSetBucketCORS$fGenericSetBucketCORSSetBucketACLsResponse SetBucketACLs$sel:bucket:SetBucketACLs$sel:acls:SetBucketACLs$sel:owner:SetBucketACLs$fActionmSetBucketACLs$fShowSetBucketACLs$fEqSetBucketACLs$fGenericSetBucketACLsListBucketResponse$sel:bucket:ListBucketResponse$sel:prefix:ListBucketResponse$sel:marker:ListBucketResponse"$sel:nextMarker:ListBucketResponse$sel:maxKeys:ListBucketResponse#$sel:isTruncated:ListBucketResponse$sel:objects:ListBucketResponse ListBucket$sel:bucket:ListBucket$sel:delimiter:ListBucket$sel:marker:ListBucket$sel:maxKeys:ListBucket$sel:prefix:ListBucket$fActionmListBucket$fShowListBucketResponse$fEqListBucketResponse$fGenericListBucketResponse$fShowListBucket$fEqListBucket$fGenericListBucketListAllBucketsResponseownerbucketsListAllBuckets$fActionmListAllBuckets$fShowListAllBucketsResponse$fEqListAllBucketsResponse$fGenericListAllBucketsResponse$fShowListAllBuckets$fEqListAllBuckets$fGenericListAllBucketsGetObjectInfoResponse GetObjectInfo$sel:bucket:GetObjectInfo$sel:object:GetObjectInfo$fActionmGetObjectInfo$fShowGetObjectInfo$fEqGetObjectInfo$fGenericGetObjectInfoGetObjectACLsResponse GetObjectACLs$sel:bucket:GetObjectACLs$sel:object:GetObjectACLs$fActionmGetObjectACLs$fShowGetObjectACLs$fEqGetObjectACLs$fGenericGetObjectACLsGetObjectResponse%$sel:objectMetadata:GetObjectResponse!$sel:objectData:GetObjectResponse GetObject$sel:bucket:GetObject$sel:object:GetObject$fActionmGetObject$fShowGetObjectResponse$fEqGetObjectResponse$fGenericGetObjectResponse$fShowGetObject $fEqGetObject$fGenericGetObjectGetBucketLocationResponse1$sel:locationConstraint:GetBucketLocationResponseGetBucketLocation$sel:bucket:GetBucketLocation$fActionmGetBucketLocation$fShowGetBucketLocationResponse$fEqGetBucketLocationResponse"$fGenericGetBucketLocationResponse$fShowGetBucketLocation$fEqGetBucketLocation$fGenericGetBucketLocationGetBucketLifecycleResponse%$sel:rules:GetBucketLifecycleResponseGetBucketLifecycle$sel:bucket:GetBucketLifecycle$fActionmGetBucketLifecycle $fShowGetBucketLifecycleResponse$fEqGetBucketLifecycleResponse#$fGenericGetBucketLifecycleResponse$fShowGetBucketLifecycle$fEqGetBucketLifecycle$fGenericGetBucketLifecycleGetBucketCORSResponse $sel:rules:GetBucketCORSResponse GetBucketCORS$sel:bucket:GetBucketCORS$fActionmGetBucketCORS$fShowGetBucketCORSResponse$fEqGetBucketCORSResponse$fGenericGetBucketCORSResponse$fShowGetBucketCORS$fEqGetBucketCORS$fGenericGetBucketCORSGetBucketACLsResponse GetBucketACLs$sel:bucket:GetBucketACLs$fActionmGetBucketACLs$fShowGetBucketACLs$fEqGetBucketACLs$fGenericGetBucketACLsCreateBucketResponsebucketregionacl$fActionmCreateBucket$fShowCreateBucket$fEqCreateBucket$fGenericCreateBucketCopyObjectResponse$sel:etag:CopyObjectResponse$$sel:lastModified:CopyObjectResponse CopyObject$sel:srcBucket:CopyObject$sel:destBucket:CopyObject$sel:srcObject:CopyObject$sel:destObject:CopyObject!$sel:metadataDirective:CopyObject$sel:acl:CopyObjectMetadataDirectiveCopyReplace$fActionmCopyObject$fShowCopyObjectResponse$fEqCopyObjectResponse$fGenericCopyObjectResponse$fShowCopyObject$fEqCopyObject$fGenericCopyObject$fShowMetadataDirective$fEqMetadataDirective$fGenericMetadataDirective runActionparseErrorResponse runSpaces newSpaces uploadObjectmultipartObject uploadFile getObjectInfo getObjectgetObjectSinkFile copyObjectcopyObjectWithinoverwriteObject deleteObject getObjectACLs setObjectACLs createBucket deleteBucketgetBucketLocationlistAllBuckets listBucketlistBucketGrouped listBucketRec getBucketCORS setBucketCORSdeleteBucketCORS getBucketACLs setBucketACLsgetBucketLifecycleRulessetBucketLifecycleRulesdeleteBucketLifecycleRules'http-types-0.12.3-UYUXnsOx2u9EfNOs11ZUENetwork.HTTP.Types.StatusStatusbytestring-0.10.12.0Data.ByteString.Lazy.InternalbaseGHC.Exception.Type ExceptionData.ByteString.Internal*http-client-0.6.4.1-Hz8iO8TfykY7YHJFqxLdJWNetwork.HTTP.Client.TypesRequestNetwork.HTTP.Types.HeaderHeader RequestBodyManager text-1.2.4.1Data.Text.InternalText*xml-conduit-1.9.1.0-F4Y9s7ztqRLEb4ycb5GoqMText.XMLNodeGHC.NumNum time-1.9.3 Data.Time.Clock.Internal.UTCTimeUTCTime HeaderNameghc-prim GHC.TypesInt GHC.MaybeNothing)mime-types-0.1.0.9-1XpBorrtO1G2nfqA8lHD1Y Network.MimeMimeTypeGHC.IOFilePath