# File lib/tree.rb, line 320
    def fill_in!(cidr)
        filled = false

        # validate object
        if ( !cidr.kind_of?(NetAddr::CIDR) )
            begin
                cidr = NetAddr::CIDR.create(cidr)
            rescue Exception => error
                raise ArgumentError, "Provided argument raised the following " +
                                     "errors: #{error}"
            end
        end

        me = find_me(cidr)
        if (me && me.tag[:Subnets].length != 0)
            me.tag[:Subnets] = NetAddr.cidr_fill_in(me, me.tag[:Subnets])
            me.tag[:Subnets].each do |subnet|
                subnet.tag[:Subnets] = [] if (!subnet.tag.has_key?(:Subnets))
            end
            filled = true
        end
        return(filled)
    end