code: def send_request(self, request):
          
          assert isinstance(request, Request)
          if request.block1 or (request.payload is not None and len(request.payload) > defines.MAX_PAYLOAD):
              host, port = request.destination
              key_token = hash(str(host) + str(port) + str(request.token))
              if request.block1:
                  num, m, size = request.block1
              else:
                  num = 0
                  m = 1
                  size = defines.MAX_PAYLOAD
  
              self._block1_sent[key_token] = BlockItem(size, num, m, size, request.payload, request.content_type)
              request.payload = request.payload[0:size]
              del request.block1
              request.block1 = (num, m, size)
          elif request.block2:
              host, port = request.destination
              key_token = hash(str(host) + str(port) + str(request.token))
              num, m, size = request.block2
              item = BlockItem(size, num, m, size, "", None)
              self._block2_sent[key_token] = item
              return request
          return request
docs: Handles the Blocks option in a outgoing request.
  
          :type request: Request
          :param request: the outgoing request
          :return: the edited request