def METHOD_NAME(self):
    if not any(socket.is_linked for socket in self.outputs):
        return
    curves_s = self.inputs['Curves'].sv_get()
    if 'Degree' in self.inputs:
        degree_s = self.inputs['Degree'].sv_get()
    else:
        degree_s = [[3]]
    if 'Epsilon' in self.inputs:
        epsilon_s = self.inputs['Epsilon'].sv_get()
    else:
        epsilon_s = [[1.0]]
    if 'Smooth' in self.inputs:
        smooth_s = self.inputs['Smooth'].sv_get()
    else:
        smooth_s = [[0.0]]
    if not isinstance(curves_s[0], (list, tuple)):
        curves_s = [curves_s]
    surfaces_out = []
    for curves, degree, epsilon, smooth in zip_long_repeat(curves_s, degree_s, epsilon_s, smooth_s):
        if isinstance(degree, (list, tuple)):
            degree = degree[0]
        if isinstance(epsilon, (list, int)):
            epsilon = epsilon[0]
        if isinstance(smooth, (list, int)):
            smooth = smooth[0]
        u_spline_constructor = self.get_u_spline_constructor(degree, smooth, epsilon)
        v_bounds = (0.0, 1.0)
        u_bounds = (0.0, 1.0)
        surface = SvInterpolatingSurface(u_bounds, v_bounds, u_spline_constructor, curves)
        surfaces_out.append(surface)
    self.outputs['Surface'].sv_set(surfaces_out)