=9B      !"#$%&'()*+,-./0123456789:;<=>?@A6Easily write safe GitHub webhook handlers with Servant (c) Jacob Thomas Errington, 2016MIT)servant-github-webhook@mail.jerrington.me experimentalNone%&+,-9:;<=DQRT /Class of types that can be reflected to values.Convient alias for  that allows us to avoid using  explicitly.-Type function that reflects a kind to a type.-A synonym for strategies producing so-called global) keys, in which the key index is simply ().A wrapper for an IO strategy to obtain the signing key for the webhook as configured in GitHub. The strategy is executed each time the "s routing logic is executed.We allow the use of IOv here so that you can fetch the key from a cache or a database. If the key is a constant or read only once, just use B. The type key used here must correspond with  k where k1 is the kind whose types are used as indices in ".ZIf you don't care about indices and just want to write a webhook using a global key, see  which fixes key to () and use $4, which fills the newtype with a constant function. ]A routing combinator that succeeds only for a webhook request that matches one of the given  given in the type-level list events.If the list contains #, then all events will be matched.@The combinator will require that its associated handler take a  parameter, and the matched event will be passed to the handler. This allows the handler to determine which event triggered it from the list..Other routes are tried if there is a mismatch.!+A convenient alias for a trivial key index.USe this type synonym if you are creating a webhook server to handle only webhooks from a single repository, or for mutliple repositories using the same secret key."Convenient synonym for #B that computes its first type argument given just the second one.Use this type synonym if you are creating a webhook server to handle webhooks from multiple repositories, with different secret keys.#A clone of Servant's CV combinator, except that it will also verify the signature provided by GitHub in the X-Hub-SignatureF header by computing the SHA1 HMAC of the request body and comparing.XThe use of this combinator will require that the router context contain an appropriate - entry. Specifically, the type parameter of  must correspond with Demote k where k is the kind of the index key7 used here. Consequently, it will be necessary to use D instead of E.aOther routes are not tried upon the failure of this combinator, and a 401 response is generated.MUse of this datatype directly is discouraged, since the choice of the index key determines its kind k and hence proxy, which is . Instead, use ", which computes the proxy argument given just key+. The proxy argument is necessary to avoid UndecidableInstances for the implementation of the F instance for the datatype.$Smart constructor for , for a so-called global key.%$Helper that parses a header using a G7 instance and discards the parse error message if any.&cDetermines whether a given webhook event matches a given raw representation of one. The result is H7 if there is no match. This function accounts for the } matching everything, so it returns the result of parsing the raw representation when trying to match against the wildcard.* !"#$%&'()*+,-./0123456789:;<=>?@A'  !"#$%&'#"! $ %&' !"#$%&'()*+,-./0123456789:;<=>?@AI      !"!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMKLNKOPQRSFTU5servant-github-webhook-0.3.0.2-1Xtvj58xiW09WSoUHKySWHServant.GitHub.Webhookbase Data.ProxyKProxy$github-0.15.0-LF3IafGi5ePI29sv9Nuv4vGitHub.Data.WebhooksWebhookWatchEventWebhookTeamAddEventWebhookStatusEventWebhookReleaseEventWebhookPushEventWebhookPullRequestEvent$WebhookPullRequestReviewCommentEventWebhookPublicEventWebhookPingEventWebhookPageBuildEventWebhookMemberEventWebhookIssuesEventWebhookIssueCommentEventWebhookGollumEventWebhookForkEventWebhookDeploymentStatusEventWebhookDeploymentEventWebhookDeleteEventWebhookCreateEventWebhookCommitCommentEventWebhookWildcardEventRepoWebhookEventReflectreflectDemoteDemote' GitHubKey GitHubKey' unGitHubKey GitHubEventGitHubSignedReqBodyGitHubSignedReqBody'GitHubSignedReqBody'' gitHubKeyparseHeaderMaybe matchEvent*$fReflectRepoWebhookEventWebhookWatchEvent,$fReflectRepoWebhookEventWebhookTeamAddEvent+$fReflectRepoWebhookEventWebhookStatusEvent,$fReflectRepoWebhookEventWebhookReleaseEvent)$fReflectRepoWebhookEventWebhookPushEvent0$fReflectRepoWebhookEventWebhookPullRequestEvent=$fReflectRepoWebhookEventWebhookPullRequestReviewCommentEvent+$fReflectRepoWebhookEventWebhookPublicEvent)$fReflectRepoWebhookEventWebhookPingEvent.$fReflectRepoWebhookEventWebhookPageBuildEvent+$fReflectRepoWebhookEventWebhookMemberEvent+$fReflectRepoWebhookEventWebhookIssuesEvent1$fReflectRepoWebhookEventWebhookIssueCommentEvent+$fReflectRepoWebhookEventWebhookGollumEvent)$fReflectRepoWebhookEventWebhookForkEvent5$fReflectRepoWebhookEventWebhookDeploymentStatusEvent/$fReflectRepoWebhookEventWebhookDeploymentEvent+$fReflectRepoWebhookEventWebhookDeleteEvent+$fReflectRepoWebhookEventWebhookCreateEvent2$fReflectRepoWebhookEventWebhookCommitCommentEvent-$fReflectRepoWebhookEventWebhookWildcardEvent $fReflect[]: $fReflect[][] $fReflect()()$fReflectSymbols$fHasServerTYPE:>context$fHasServerTYPE:>context0GHC.Basepure&servant-0.9.1.1-4WglNb2cnckGLUniGQeQ7fServant.API.ReqBodyReqBody-servant-server-0.9.1.1-2Bd5D92jDDTH1UUc35P81aServant.ServerserveWithContextserveServant.Server.Internal HasServer*http-api-data-0.3.3-GLjp6VjMYylEzA9xwZrkWPWeb.Internal.HttpApiDataFromHttpApiDataNothing