Escolar Documentos
Profissional Documentos
Cultura Documentos
SCPP Manual Implementacao Calculo Remoto de Precos e Prazos
SCPP Manual Implementacao Calculo Remoto de Precos e Prazos
d) Resultado numa janela pop-up: Nesta forma de consulta os parmetros so passados para o calculador de preos e prazos via post e o resultado ser mostrado dentro de uma janela pop-up do prprio site dos Correios.
(necessrio desabilitar o bloqueador de pop-up do browser)
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
Os mtodos relativos a este manual so: CalcPrecoPrazo: retorna o preo e o prazo de entrega de uma encomenda. Calcpreco: retorna o preo de envio de uma encomenda. Calcprazo: retorna o prazo de entrega de uma encomenda.
Campo nCdEmpresa
Tipo String
Descrio Seu cdigo administrativo junto ECT. O cdigo est disponvel no corpo do contrato firmado com os Correios. Senha para acesso ao servio, associada ao seu cdigo administrativo. A senha inicial corresponde aos 8 primeiros dgitos do CNPJ informado no contrato. A qualquer momento, possvel alterar a senha no endereo http://www.corporativo.correios.com.br/encomendas/s ervicosonline/recuperaSenha. Cdigo do servio: Cdigo 40010 40045 40215 40290 41106 Servio SEDEX Varejo SEDEX a Cobrar Varejo SEDEX 10 Varejo SEDEX Hoje Varejo PAC Varejo
Obrigatrio No, mas o parmetro tem que ser passado mesmo vazio. No, mas o parmetro tem que ser passado mesmo vazio. .
sDsSenha
String
nCdServico
String
Para outros servios, consulte o cdigo no seu contrato. sCepOrigem sCepDestino nVlPeso String String String CEP de Origem sem hfen.Exemplo: 05311900 CEP de Destino sem hfen Peso da encomenda, incluindo sua embalagem. O peso deve ser informado em quilogramas. Se o formato for Envelope, o valor mximo permitido ser 1 kg. Formato da encomenda (incluindo embalagem). Valores possveis: 1, 2 ou 3 1 Formato caixa/pacote 2 Formato rolo/prisma 3 - Envelope Comprimento da encomenda (incluindo embalagem), em centmetros. Sim Sim Sim
nCdFormato
Int
Sim
nVlComprimento
Decimal
Sim.
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas nVlAltura Decimal Altura da encomenda (incluindo embalagem), em centmetros. Se o formato for envelope, informar zero (0). nVlLargura Decimal Largura da encomenda (incluindo embalagem), em centmetros. nVlDiametro sCdMaoPropria Decimal String Dimetro da encomenda (incluindo embalagem), em centmetros. Indica se a encomenda ser entregue com o servio adicional mo prpria. Valores possveis: S ou N (S Sim, N No) Indica se a encomenda ser entregue com o servio adicional valor declarado. Neste campo deve ser apresentado o valor declarado desejado, em Reais. Indica se a encomenda ser entregue com o servio adicional aviso de recebimento. Valores possveis: S ou N (S Sim, N No)
Sim.
nVlValorDeclarado
Decimal
sCdAvisoRecebimento
String
Sim. Se no optar pelo servio informar zero. Sim. Se no optar pelo servio informar N
Retorno dos dados O retorno dos dados um XML informando a situao da consulta e uma lista ( array) com os dados de preo e prazo dos servios SEDEX, e-SEDEX e PAC. O e-SEDEX um servio exclusivo para as principais localidades e clientes do segmento de Comrcio Eletrnico, portanto, caso o CEP Origem e Destino estejam fora da rea de abrangncia do e-SEDEX, o mesmo no ser informado e uma mensagem relativa indisponibilidade do servio ser apresentada.
Parmetro Resultado.Servicos Resultado.Servicos.cServico[x].Codigo Resultado.Servicos.cServico[x].Valor Resultado.Servicos.cServico[x].PrazoEntrega Descrio Array com os preos e prazos dos servios solicitados e disponveis. Cdigo do Servio de Entrega. Preo total da encomenda, em Reais, incluindo os preos dos servios opcionais Prazo estimado em dias para entrega do produto. Se o valor retornado for 0 (zero), indica que o prazo no foi retornado corretamente. Preo do servio adicional Mo Prpria Preo do servio adicional Aviso de Recebimento Preo do servio adicional Valor Declarado Informa se a localidade informada possui entrega domiciliria. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. Informa se a localidade informada possui entrega domiciliria aos sbados. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. <Cdigos de Erros retornados pelo calculador> + o cdigo 7 (Servio indisponvel, tente mais tarde) Retorna a descrio do erro gerado.
Resultado.Servicos.cServico[x].EntregaSabado
Resultado.Servicos.cServico[x].Erro Resultado.Servicos.cServico[x].MsgErro
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
Campo nCdEmpresa
Tipo String
Descrio Seu cdigo administrativo junto ECT. O cdigo est disponvel no corpo do contrato firmado com os Correios. Senha para acesso ao servio, associada ao seu cdigo administrativo. A senha inicial corresponde aos 8 primeiros dgitos do CNPJ informado no contrato. A qualquer momento, possvel alterar a senha no endereo http://www.corporativo.correios.com.br/encomendas/s ervicosonline/recuperaSenha. Cdigo do servio: Cdigo 40010 40045 40215 40290 41106 Servio SEDEX Varejo SEDEX a Cobrar Varejo SEDEX 10 Varejo SEDEX Hoje Varejo PAC Varejo
Obrigatrio No, mas o parmetro tem que ser passado mesmo vazio. No, mas o parmetro tem que ser passado mesmo vazio. .
sDsSenha
String
nCdServico
String
Para outros servios, consulte o cdigo no seu contrato. sCepOrigem sCepDestino nVlPeso String String String CEP de Origem sem hfen.Exemplo: 05311900 CEP de Destino sem hfen Peso da encomenda, incluindo sua embalagem. O peso deve ser informado em quilogramas. Se o formato for Envelope, o valor mximo permitido ser 1 kg. Formato da encomenda (incluindo embalagem). Valores possveis: 1, 2 ou 3 1 Formato caixa/pacote 2 Formato rolo/prisma 3 - Envelope Comprimento da encomenda (incluindo embalagem), em centmetros. Altura da encomenda (incluindo embalagem), em centmetros. Se o formato for envelope, informar zero (0). Largura da encomenda (incluindo embalagem), em centmetros. Dimetro da encomenda (incluindo embalagem), em centmetros. Indica se a encomenda ser entregue com o servio adicional mo prpria. Valores possveis: S ou N (S Sim, N No) Indica se a encomenda ser entregue com o servio adicional valor declarado. Neste campo deve ser apresentado o valor declarado desejado, em Reais. Indica se a encomenda ser entregue com o servio adicional aviso de recebimento. Valores possveis: S ou N (S Sim, N No) Sim Sim Sim
nCdFormato
Int
Sim
nVlComprimento nVlAltura
Decimal Decimal
Sim. Sim.
nVlValorDeclarado
Decimal
sCdAvisoRecebimento
String
Sim. Se no optar pelo servio informar zero. Sim. Se no optar pelo servio informar N
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
Retorno dos dados O retorno dos dados um XML informando a situao da consulta e uma lista ( array) com os dados de preo dos servios SEDEX, e-SEDEX e PAC. O e-SEDEX um servio exclusivo para as principais localidades e clientes do segmento de Comrcio Eletrnico, portanto, caso o CEP Origem e Destino estejam fora da rea de abrangncia do e-SEDEX, o mesmo no ser informado e uma mensagem relativa indisponibilidade do servio ser apresentada.
Parmetro Resultado.Servicos Resultado.Servicos.cServico[x].Codigo Resultado.Servicos.cServico[x].Valor Resultado.Servicos.cServico[x].ValorMaoPropria Resultado.Servicos.cServico[x].ValorAvisoRecebimento Resultado.Servicos.cServico[x].ValorValorDeclarado Resultado.Servicos.cServico[x].Erro Resultado.Servicos.cServico[x].MsgErro Descrio Array com os preos e prazos dos servios solicitados e disponveis. Cdigo do Servio de Entrega. Preo total da encomenda, em Reais, incluindo os preos dos servios opcionais Preo do servio adicional Mo Prpria Preo do servio adicional Aviso de Recebimento Preo do servio adicional Valor Declarado <Cdigos de Erros retornados pelo calculador> + o cdigo 7 (Servio indisponvel, tente mais tarde) Retorna a descrio do erro gerado.
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
Descrio CEP de Origem sem hfen.Exemplo: 05311900 CEP de Destino sem hfen Cdigo do servio: Cdigo 40010 40045 40215 40290 41106 Servio SEDEX Varejo SEDEX a Cobrar Varejo SEDEX 10 Varejo SEDEX Hoje Varejo PAC Varejo
Obrigatrio Sim Sim Sim. Pode ser mais de um numa consulta separados por vrgula.
Retorno dos dados O retorno dos dados um XML informando a situao da consulta e uma lista ( array) com os dados de prazo dos servios SEDEX, e-SEDEX e PAC. O e-SEDEX um servio exclusivo para as principais localidades e clientes do segmento de Comrcio Eletrnico, portanto, caso o CEP Origem e Destino estejam fora da rea de abrangncia do e-SEDEX, o mesmo no ser informado e uma mensagem relativa indisponibilidade do servio ser apresentada.
Parmetro Resultado.Servicos Resultado.Servicos.cServico[x].Codigo Resultado.Servicos.cServico[x].PrazoEntrega Descrio Array com os preos e prazos dos servios solicitados e disponveis. Cdigo do Servio de Entrega. Prazo estimado em dias para entrega do produto. Se o valor retornado for 0 (zero), indica que o prazo no foi retornado corretamente. Informa se a localidade informada possui entrega domiciliria. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. Informa se a localidade informada possui entrega domiciliria aos sbados. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. <Cdigos de Erros retornados pelo calculador> + o cdigo 7 (Servio indisponvel, tente mais tarde) Retorna a descrio do erro gerado.
Resultado.Servicos.cServico[x].EntregaDomiciliar
Resultado.Servicos.cServico[x].EntregaSabado
Resultado.Servicos.cServico[x].Erro Resultado.Servicos.cServico[x].MsgErro
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
2.
Consulta com resultado no formato XML, na pgina do cliente e janela pop-up: O calculador de preos e prazos dos servios de encomendas dos Correios tambm pode ser acessado pelo endereo:
http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx
Neste caso os resultados podero ser visualizados no formato XML, numa janela popup ou numa pgina disponvel no ambiente do requisitante. Neste ltimo caso o retorno ser enviado via post. 2.1 Parmetros de entrada
Campo nCdEmpresa
Tipo String
Descrio Seu cdigo administrativo junto ECT. O cdigo est disponvel no corpo do contrato firmado com os Correios. Senha para acesso ao servio, associada ao seu cdigo administrativo. A senha inicial corresponde aos 8 primeiros dgitos do CNPJ informado no contrato. A qualquer momento, possvel alterar a senha no endereo http://www.corporativo.correios.com.br/encomendas/s ervicosonline/recuperaSenha. Cdigo do servio: Cdigo 40010 40045 40215 40290 41106 Servio SEDEX Varejo SEDEX a Cobrar Varejo SEDEX 10 Varejo SEDEX Hoje Varejo PAC Varejo
Obrigatrio No, mas o parmetro tem que ser passado mesmo vazio. No, mas o parmetro tem que ser passado mesmo vazio.
sDsSenha
String
nCdServico
String
Para outros servios, consulte o cdigo no seu contrato. sCepOrigem sCepDestino nVlPeso String String String CEP de Origem sem hfen.Exemplo: 05311900 CEP de Destino Sem hfem Peso da encomenda, incluindo sua embalagem. O peso deve ser informado em quilogramas. Se o formato for Envelope, o valor mximo permitido ser 1 kg. Formato da encomenda (incluindo embalagem). Valores possveis: 1, 2 ou 3 1 Formato caixa/pacote 2 Formato rolo/prisma 3 - Envelope Comprimento da encomenda (incluindo embalagem), em centmetros. Altura da encomenda (incluindo embalagem), em centmetros. Se o formato for envelope, informar zero (0). Largura da encomenda (incluindo embalagem), em centmetros. Sim Sim Sim
nCdFormato
Int
Sim
nVlComprimento nVlAltura
Decimal Decimal
Sim. Sim.
nVlLargura
Decimal
Sim.
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas nVlDiametro Decimal Dimetro da encomenda (incluindo embalagem), em centmetros. sCdMaoPropria String Indica se a encomenda ser entregue com o servio adicional mo prpria. Valores possveis: S ou N (S Sim, N No) Indica se a encomenda ser entregue com o servio adicional valor declarado. Neste campo deve ser apresentado o valor declarado desejado, em Reais. Indica se a encomenda ser entregue com o servio adicional aviso de recebimento. Valores possveis: S ou N (S Sim, N No) Indica a forma de retorno da consulta. XML Resultado em XML Popup Resultado em uma janela popup <URL> Resultado via post em uma pgina do requisitante Tipo de informao que ser retornada. Valores possveis: 1, 2 ou 3 1 - S preo 2 - S prazo 3 - Preo e Prazo
Sim. Sim.
nVlValorDeclarado
Decimal
sCdAvisoRecebimento
String
StrRetorno
String
Sim. Se no optar pelo servio informar zero. Sim. Se no optar pelo servio informar N Sim.
nIndicaCalculo
String
No
S prazo
Codigo_X PrazoEntrega_X Cdigo do Servio de Entrega. Prazo estimado em dias para entrega do produto. Se o valor retornado for 0 (zero), indica que o prazo no foi retornado corretamente. Informa se a localidade informada possui entrega domiciliria. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. Informa se a localidade informada possui entrega domiciliria aos sbados. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. Os mesmos do Web Services. Retorna a descrio do erro gerado.
EntregaDomiciliar_X
EntregaSabado_X
Erro_X MsgErro_X
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
Preo e prazo
Codigo_X Valor_X ValorMaoPropria_X ValorAvisoRecebimento_X ValorValorDeclarado_X PrazoEntrega_X Cdigo do Servio de Entrega. Preo total da encomenda, em Reais, incluindo os preos dos servios opcionais. Preo do servio adicional Mo Prpria. Preo do servio adicional Aviso de Recebimento. Preo do servio adicional Valor Declarado. Prazo estimado em dias para entrega do produto. Se o valor retornado for 0 (zero), indica que o prazo no foi retornado corretamente. Informa se a localidade informada possui entrega domiciliria. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. Informa se a localidade informada possui entrega domiciliria aos sbados. Se o prazo no for retornado corretamente, o retorno deste parmetro ser vazio. Os mesmos do Web Services. Retorna a descrio do erro gerado.
EntregaDomiciliar_X
EntregaSabado_X
Erro_X MsgErro_X
Obs: O X um ndice que varia de 1 at n (nmero de servios enviado no parmetro nCdServico). Por exemplo: se forem enviados dois cdigos de servio (40010,40044), o retorno conter os campos Cdigo_1 (com o valor 40010) e Codigo_2 (com o valor 40044).
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
3.
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
-37 -38 -39 -40 -41 -42 -43 -44 -45 -888 006 007 008 009 010 011 7 99
Cliente no possui servio ativo em seu contrato. Servio indisponvel para este cdigo administrativo. Peso excedido para o formato envelope Para definicao do preco deverao ser informados, tambem, o comprimento e a largura e altura do objeto em centimetros (cm). O comprimento nao pode ser maior que 60 cm. O comprimento nao pode ser inferior a 16 cm. A soma resultante do comprimento + largura nao deve superar a 120 cm. A largura nao pode ser inferior a 11 cm. A largura nao pode ser maior que 60 cm. Erro ao calcular a tarifa Localidade de origem no abrange o servio informado Localidade de destino no abrange o servio informado Servio indisponvel para o trecho informado CEP inicial pertencente a rea de Risco. CEP final pertencente a rea de Risco. A entrega ser realizada, temporariamente, na agncia mais prxima do endereo do destinatrio. CEP inicial e final pertencentes a rea de Risco Servio indisponvel, tente mais tarde Outros erros diversos do .Net
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
4.
Passos para Utilizao: Para testar copie os cdigos fonte de exemplo para um servidor web no wwwroot com os nomes frete.asp e frete2.asp respectivamente.
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
</select> </span> </div> <div> <span style="width:130px;">Valor declarado:</span> <span><input type="text" name="valordeclarado" value=""></span> </div> <div> <span style="width:130px;">Aviso de Recebimento:</span> <span><select name="avisorecebimento" size="1"> <option value="S">Sim</option> <option value="N">No</option> </select> </span> </div> <div> <span><input type="SUBMIT" name="BTN" value="Consultar" ID="Submit1"></span> </div> </fieldset> </form> </body> </html>
EMPRESA BRASILEIRA DE CORREIOS E TELGRAFOS ECT Manual de implementao do webservice de clculo de preos e prazos de encomendas
sPacoteSoap = GerarPacoteSoap(request.form("codigo"),request.form("senha"),request.form("servicos"),requ est.form("cepori"),request.form("cepdes"),peso,request.form("formato"),comprimento, altura, largura, diametro, request.form("maopropria"), valordeclarado, request.form("avisorecebimento")) oXmlHttp.open "POST", sSoapServer, false oXmlHttp.setRequestHeader "SOAPAction", "http://tempuri.org/CalcPrecoPrazo" oXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8" oXmlHttp.send(sPacoteSoap) sReturn = oXmlHttp.responseText 'parse xml Set oXmlDom = Server.CreateObject("Microsoft.XMLDOM") oXmlDom.loadXML sReturn set oXmlDom = oXmlDom.selectSingleNode("soap:Envelope/soap:Body/CalcPrecoPrazoResponse/CalcPrecoPrazoRes ult") 'Se o retorno foi OK ento listar os fretes disponveis dim oNodes, oNode 'Seleciona os fretes no XML Set oNodes = oXmlDom.selectNodes("Servicos/cServico") 'Mostra todos os fretes disponveis for each oNode in oNodes Response.Write "<div><span style=width:150px;>Cdigo:</span><span>" & oNode.selectSingleNode("Codigo").Text & "</span><br>" Response.Write "<span style=width:150px;>Valor:</span><span>" & oNode.selectSingleNode("Valor").Text & "</span><br>" Response.Write "<span style=width:150px;>Prazo: </span><span>" & oNode.selectSingleNode("PrazoEntrega").Text & "</span></div>" Response.Write "<span style=width:150px;>Valor Mo Prpria: </span><span>" & oNode.selectSingleNode("ValorMaoPropria").Text & "</span></div>" Response.Write "<span style=width:150px;>Valor Aviso de Recebimento: </span><span>" & oNode.selectSingleNode("ValorAvisoRecebimento").Text & "</span></div>" Response.Write "<span style=width:150px;>Valor Valor Declarado: </span><span>" & oNode.selectSingleNode("ValorValorDeclarado").Text & "</span></div>" Response.Write "<span style=width:150px;>Entrega Domiciliar: </span><span>" & oNode.selectSingleNode("EntregaDomiciliar").Text & "</span></div>" Response.Write "<span style=width:150px;>Entrega Sbado: </span><span>" & oNode.selectSingleNode("EntregaSabado").Text & "</span></div>" next Set oXmlDom = Nothing function GerarPacoteSoap(nCdEmpresa, sDsSenha, nCdServico, sCepOrigem, sCepDestino, nVlPeso, nCdFormato, nVlComprimento, nVlAltura, nVlLargura, nVlDiametro, sCdMaoPropria, nVlValorDeclarado, sCdAvisoRecebimento) dim sSoap sSoap = "<?xml version=""1.0"" encoding=""utf-8""?>" sSoap = sSoap & "<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchemainstance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" sSoap = sSoap & "<soap:Body>" sSoap = sSoap & "<CalcPrecoPrazo xmlns=""http://tempuri.org/"">" sSoap = sSoap & "<nCdEmpresa>" & nCdEmpresa & "</nCdEmpresa>" sSoap = sSoap & "<sDsSenha>" & sDsSenha & "</sDsSenha>" sSoap = sSoap & "<nCdServico>" & nCdServico & "</nCdServico>" sSoap = sSoap & "<sCepOrigem>" & sCepOrigem & "</sCepOrigem>" sSoap = sSoap & "<sCepDestino>" & sCepDestino & "</sCepDestino>" sSoap = sSoap & "<nVlPeso>" & nVlPeso & "</nVlPeso>" sSoap = sSoap & "<nCdFormato>" & nCdFormato & "</nCdFormato>" sSoap = sSoap & "<nVlComprimento>" & nVlComprimento & "</nVlComprimento>" sSoap = sSoap & "<nVlAltura>" & nVlAltura & "</nVlAltura>" sSoap = sSoap & "<nVlLargura>" & nVlLargura & "</nVlLargura>" sSoap = sSoap & "<nVlDiametro>" & nVlDiametro & "</nVlDiametro>" sSoap = sSoap & "<sCdMaoPropria>" & sCdMaoPropria & "</sCdMaoPropria>" sSoap = sSoap & "<nVlValorDeclarado>" & nVlValorDeclarado & "</nVlValorDeclarado>" sSoap = sSoap & "<sCdAvisoRecebimento>" & sCdAvisoRecebimento & "</sCdAvisoRecebimento>" sSoap = sSoap & "</CalcPrecoPrazo>" sSoap = sSoap & "</soap:Body>" sSoap = sSoap & "</soap:Envelope>" GerarPacoteSoap = sSoap end function %> <input type="button" name="btn" value="Voltar" onclick="history.go(-1);" ID="Button1">
Em caso de dvidas ou informaes ligue para nossa Central de Atendimento ao Cliente Telefone 3003-0888
18/18 Manual de Implementacao do Calculo Remoto de Precos e Prazos_versao_1.9.doc